﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Newtonsoft.Json;
using System.Web.Script.Serialization;
using Newtonsoft.Json.Linq;
using FITHOU_EDU_Server.Doituong;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;

namespace FITHOU_EDU_Server.mobile
{
    public partial class GetCalendarByUserID : System.Web.UI.Page
    {
        String sUserID;
        //static FITHOU_EDUDataContext db = new FITHOU_EDUDataContext();
        String sqlCon = ConfigurationManager.ConnectionStrings["FITHOU_EDU"].ToString();
        protected void Page_Load(object sender, EventArgs e)
        {
            sUserID = Request.QueryString["sUserID"];
            if (sUserID == "")
            {
                Response.Write("Không xác định được tham số sUserID");
                return;
            }
            else
            {
                ResponCalendar();
            }
        }


        public DataTable GetCalendar()
        {
            SqlConnection Con = new SqlConnection(sqlCon);
            SqlCommand cmd = new SqlCommand();
            SqlDataAdapter adapter = null;
            DataTable tbl = new DataTable();
            try
            {
                Con.Open();
                cmd.CommandText = "sp_tblLichhocGetByGiangvienID";
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Connection = Con;
                cmd.Parameters.Add("@PK_sNguoidungID", SqlDbType.VarChar);
                cmd.Parameters[0].Value = sUserID;
                adapter = new SqlDataAdapter(cmd);
                adapter.Fill(tbl);
            }
            catch (Exception e)
            {
                Response.Write(e.Message);
            }
            finally
            {
                if (Con.State != ConnectionState.Closed)
                    Con.Close();
                //adapter.Dispose();
                Con.Dispose();
            }
            return tbl;
        }

        public void ResponCalendar()
        {
            using (DataTable tbl = GetCalendar())
            {
                if (tbl.Rows.Count > 0)
                {
                    List<LichHoc> oLich = new List<LichHoc>();
                    foreach (DataRow row in tbl.Rows)
                    {
                        LichHoc tmp = new LichHoc();
                        tmp.PK_iLichhocID = int.Parse(row["PK_iLichhocID"].ToString());
                        tmp.sNgayhoc = DateTime.Parse(row["dNgayhoc"].ToString()).ToShortDateString();
                        tmp.sGiobatdau = row["sGiobatdau"].ToString();
                        tmp.sGioketthuc = row["sGioketthuc"].ToString();
                        if (int.Parse(row["iTrangthai"].ToString()) == 0)
                            tmp.sTrangthai = "H";
                        else
                            tmp.sTrangthai = "N";
                        tmp.sTenmonhoc = row["sTenmonhoc"].ToString();
                        tmp.sTenlop = row["sTenlop"].ToString();
                        tmp.sTenphong = row["sTenphong"].ToString();
                        tmp.sTengiangvien = row["sHoten"].ToString();

                        oLich.Add(tmp);
                    }
                    string json = "{ObjLichHoc:" + JsonConvert.SerializeObject(oLich) + "}";
                    Response.Write(json);
                }//End if
                else
                {
                    Response.Write("Server: HIEN TAI CHUA CO LICH");
                }
            }
        }


        //public void ResponseCalenderToJson()
        //{
        //    Response.Write("UserID = " + sUserID);
        //    var dsLichHoc = from l in db.tbl_Lichhocs
        //                                         from u in db.tbl_Nguoidungs
        //                                         from p in db.tbl_Phonghocs
        //                                         from m in db.tbl_Monhocs
        //                                         from c in db.tbl_Lophocs
        //                                         where l.FK_sGiangvienID == sUserID
        //                                             && l.dNgayhoc.Date >= DateTime.Now.Date
        //                                             && u.PK_sNguoidungID == l.FK_sGiangvienID
        //                                             && l.FK_iPhonghocID == p.PK_iPhonghocID
        //                                             && m.PK_iMonhocID == l.FK_iMonhocID
        //                                             && c.PK_iLophocID == l.FK_iLophocID
        //                                         orderby l.dNgayhoc
        //                                         select new{l.PK_iLichhocID, l.dNgayhoc, l.sGiobatdau,l.sGioketthuc,l.iTrangthai,c.sTenlop,u.sHoten,p.sTenphong,m.sTenmonhoc};
        //    List<LichHoc> lstLichHoc = new List<LichHoc>();
            
        //    for (int i = 0; i < dsLichHoc.Count(); ++i)
        //    {
        //        LichHoc oLich = new LichHoc();
        //        oLich.PK_iLichhocID = dsLichHoc.ElementAt(i).PK_iLichhocID;
        //        oLich.sNgayhoc = dsLichHoc.ElementAt(i).dNgayhoc.ToShortDateString();
        //        oLich.sGiobatdau = dsLichHoc.ElementAt(i).sGiobatdau;
        //        oLich.sGioketthuc = dsLichHoc.ElementAt(i).sGioketthuc;
        //        if (dsLichHoc.ElementAt(i).iTrangthai == 0)
        //            oLich.sTrangthai = "N";
        //        else
        //            oLich.sTrangthai = "H";
        //        oLich.sTenlop = dsLichHoc.ElementAt(i).sTenlop;
        //        oLich.sTengiangvien = dsLichHoc.ElementAt(i).sHoten;
        //        oLich.sTenphong = dsLichHoc.ElementAt(i).sTenphong;
        //        oLich.sTenmonhoc = dsLichHoc.ElementAt(i).sTenmonhoc;

        //        lstLichHoc.Add(oLich);
        //    }

        //    string json = JsonConvert.SerializeObject(lstLichHoc);

        //    Response.Write(json);

        //    //JavaScriptSerializer jss = new JavaScriptSerializer();
        //    //string json = jss.Serialize(dsLichHoc);


        //    ////Response.Write("Có " + dsLichHoc.Count() + " bản ghi");
        //    //String strJson = "";
        //    //strJson += "{[";
        //    //for (int i = 0; i < dsLichHoc.Count(); ++i)
        //    //{
        //    //    strJson += JsonConvert.SerializeObject(dsLichHoc.ElementAt(i)) + ",";
        //    //}
        //    //strJson += "]}";
        //    //String strJson = JsonConvert.SerializeObject(lstLichHoc);
        //    //Response.Write(json);

        //    //JObject jObj =
        //    //           new JObject(
        //    //                     new JProperty("Calendar", new JArray(
        //                             //from l in db.tbl_Lichhocs
        //                             //from u in db.tbl_Nguoidungs
        //                             //from p in db.tbl_Phonghocs
        //                             //from m in db.tbl_Monhocs
        //                             //from c in db.tbl_Lophocs
        //                             //where l.FK_sGiangvienID == sUserID 
        //                             //&& l.dNgayhoc.Date >= DateTime.Now.Date 
        //                             //&& u.PK_sNguoidungID == l.FK_sGiangvienID
        //                             //&& l.FK_iPhonghocID == p.PK_iPhonghocID
        //                             //&& m.PK_iMonhocID == l.FK_iMonhocID
        //                             //&& c.PK_iLophocID == l.FK_iLophocID
        //                             //orderby l.dNgayhoc
        //    //                         select new JArray(
        //    //                             new JProperty("PK_iLichhocID", l.PK_iLichhocID),
        //    //                             new JProperty("sNgayhoc", l.dNgayhoc.ToShortDateString()),
        //    //                             new JProperty("sGiobatdau", l.sGiobatdau),
        //    //                             new JProperty("sGioketthuc", l.sGioketthuc),
        //    //                             new JProperty("sTrangthai", l.iTrangthai),
        //    //                             new JProperty("sTenlop", c.sTenlop),
        //    //                             new JProperty("sTengiangvien", u.sHoten),
        //    //                             new JProperty("sTenphong", c.sTenlop),
        //    //                             new JProperty("sTenmonhoc", m.sTenmonhoc),
        //    //                             new JProperty("Calendar", new JArray())
        //    //                             )
        //    //                         ))


        //    //             );

        //    //Response.Write(jObj.ToString());



        //}


    }
}